export interface GeoLocation {
  country: string;
  currency: string;
  currencySymbol: string;
}

export async function getUserGeoLocation(): Promise<GeoLocation> {
  try {
    // console.log('🌍 正在调用IP地理位置API...');
    // 使用免费的IP地理位置API
    const response = await fetch('https://ipapi.co/json/');
    
    if (!response.ok) {
      throw new Error(`HTTP error! status: ${response.status}`);
    }
    
    const data = await response.json();
    // console.log('🌍 IP地理位置API返回数据:', data);
    
    const result = {
      country: data.country_code,
      currency: data.currency,
      currencySymbol: getCurrencySymbol(data.currency)
    };
    
    // console.log('🌍 解析后的地理位置信息:', result);
    return result;
  } catch (error) {
    // console.error('❌ 获取用户地理位置失败:', error);
    console.error('get user geo location failed', error);
    // 默认返回日元（因为Stripe配置的是日元）
    const fallback = {
      country: 'JP',
      currency: 'JPY',
      currencySymbol: '¥'
    };
    // console.log('🌍 使用默认日元地理位置信息:', fallback);
    return fallback;
  }
}

// 常用货币符号映射
function getCurrencySymbol(currency: string): string {
  const symbols: Record<string, string> = {
    USD: '$',
    EUR: '€',
    JPY: '¥',
    GBP: '£',
    CNY: '¥',
    HKD: 'HK$',
    TWD: 'NT$',
    KRW: '₩',
    AUD: 'A$',
    CAD: 'C$',
    SGD: 'S$',
    MYR: 'RM',
    THB: '฿',
    RUB: '₽',
    INR: '₹'
    // 可以根据需要添加更多货币符号
  };
  
  return symbols[currency] || currency;
}